#pragma once

#include "noncopyable.h"
#include <vector>
#include <deque>
#include "task.h"
#include <mutex>
namespace TinyRPC{
template<typename  T>
class BlockingQueue : public Noncopyable {
public:
    T take();
    void push(const T& task);
    void push(T&& task);
private:
    std::deque<T> m_tasks;
    std::mutex m_mutex;
};
}
